package com.wzdigit.wms.hm.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.wzdigit.framework.orm.model.BasicDomain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author Any
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("WMS_INV_TRANS")
@KeySequence(value = "WMS_INV_TRANS_SEQ", clazz = Integer.class)
public class InvTrans extends BasicDomain {
    private static final long serialVersionUID = 1L;
    /**
     * 库存事务ID
     */
    @ApiModelProperty(value = "库存事务ID")
    @TableId(value = "INV_TRANS_ID", type = IdType.INPUT)
    private Integer invTransId;
    /**
     * 操作代码
     */
    @ApiModelProperty(value = "操作代码")
    @TableField(value = "OP_CODE")
    private String opCode;
    /**
     * 单据类型需统一定义，如收货单、入库单、发货单、出库单、调拨单、移库单，类型对应的值不能重
     */
    @ApiModelProperty(value = "单据类型需统一定义，如收货单、入库单、发货单、出库单、调拨单、移库单，类型对应的值不能重")
    @TableField(value = "DOC_TYPE")
    private String docType;
    /**
     * 单据号
     */
    @ApiModelProperty(value = "单据号")
    @TableField(value = "DOC_NO")
    private String docNo;
    /**
     * 单据行号
     */
    @ApiModelProperty(value = "单据行号")
    @TableField(value = "DOC_LINE_NO")
    private String docLineNo;
    /**
     * 库存交易凭证号
     */
    @ApiModelProperty(value = "库存交易凭证号")
    @TableField(value = "TRSN_NO")
    private String trsnNo;
    /**
     * 库存交易凭证行号
     */
    @ApiModelProperty(value = "库存交易凭证行号")
    @TableField(value = "TRSN_LINE_NO")
    private String trsnLineNo;
    /**
     * 交易状态
     */
    @ApiModelProperty(value = "交易状态")
    @TableField(value = "STATUS")
    private Integer status;
    /**
     * 交易时间
     */
    @ApiModelProperty(value = "交易时间")
    @TableField(value = "TRANS_TIME")
    private Date transTime;
    /**
     * 操作人
     */
    @ApiModelProperty(value = "操作人")
    @TableField(value = "OPERATOR")
    private String operator;
    /**
     * 交易数量
     */
    @ApiModelProperty(value = "交易数量")
    @TableField(value = "TRANS_QTY")
    private BigDecimal transQty;
    /**
     * 来源货主，客户主数据中 客户类型=货主，取客户ID
     */
    @ApiModelProperty(value = "来源货主，客户主数据中 客户类型=货主，取客户ID")
    @TableField(value = "FM_OWNER")
    private Integer fmOwner;
    /**
     * FROM货品
     */
    @ApiModelProperty(value = "FROM货品")
    @TableField(value = "FM_SKU_ID")
    private Integer fmSkuId;
    /**
     * 源工厂代码(组织），如5500,5520
     */
    @ApiModelProperty(value = "源工厂代码(组织），如5500,5520")
    @TableField(value = "FM_FACTORY")
    private String fmFactory;
    /**
     * FROM批次号
     */
    @ApiModelProperty(value = "FROM批次号")
    @TableField(value = "FM_LOTNO")
    private String fmLotno;
    /**
     * 供应商IKEY
     */
    @ApiModelProperty(value = "供应商IKEY")
    @TableField(value = "FM_VENDOR_ID")
    private Integer fmVendorId;
    /**
     * 只影响仓库库存，不影响库位库存的事务，库位允许为空，比如发货通知单预分配库位库存
     */
    @ApiModelProperty(value = "只影响仓库库存，不影响库位库存的事务，库位允许为空，比如发货通知单预分配库位库存")
    @TableField(value = "FM_LOC_ID")
    private Integer fmLocId;
    /**
     * 库存地点
     */
    @ApiModelProperty(value = "库存地点")
    @TableField(value = "FM_WHS_ID")
    private Integer fmWhsId;
    /**
     * FROM单位
     */
    @ApiModelProperty(value = "FROM单位")
    @TableField(value = "FM_UNIT")
    private String fmUnit;
    /**
     * FROM数量
     */
    @ApiModelProperty(value = "FROM数量")
    @TableField(value = "FM_QTY")
    private BigDecimal fmQty;
    /**
     * FROM预收数量
     */
    @ApiModelProperty(value = "FROM预收数量")
    @TableField(value = "FM_PRE_IN_QTY")
    private BigDecimal fmPreInQty;
    /**
     * FROM预支数量
     */
    @ApiModelProperty(value = "FROM预支数量")
    @TableField(value = "FM_PRE_OUT_QTY")
    private BigDecimal fmPreOutQty;
    /**
     * FROM冻结数量
     */
    @ApiModelProperty(value = "FROM冻结数量")
    @TableField(value = "FM_HOLD_QTY")
    private BigDecimal fmHoldQty;
    /**
     * 分配数量
     */
    @ApiModelProperty(value = "分配数量")
    @TableField(value = "FM_PRE_ALOC_QTY")
    private BigDecimal fmPreAlocQty;
    /**
     * 分配数量
     */
    @ApiModelProperty(value = "分配数量")
    @TableField(value = "FM_ALOC_QTY")
    private BigDecimal fmAlocQty;
    /**
     * 库存性质(特殊采购性质)，K为寄售 ,E为销售订单,空白为标准转换为S
     */
    @ApiModelProperty(value = "库存性质(特殊采购性质)，K为寄售 ,E为销售订单,空白为标准转换为S")
    @TableField(value = "FM_INV_ATTR")
    private String fmInvAttr;
    /**
     * FROM品质状态
     */
    @ApiModelProperty(value = "FROM品质状态")
    @TableField(value = "FM_QA_STATUS")
    private Integer fmQaStatus;
    /**
     * 来源货主，客户主数据中 客户类型=货主，取客户ID
     */
    @ApiModelProperty(value = "来源货主，客户主数据中 客户类型=货主，取客户ID")
    @TableField(value = "TO_OWNER")
    private Integer toOwner;
    /**
     * TO货品
     */
    @ApiModelProperty(value = "TO货品")
    @TableField(value = "TO_SKU_ID")
    private Integer toSkuId;
    /**
     * 目标工厂代码(组织），如5500,5520
     */
    @ApiModelProperty(value = "目标工厂代码(组织），如5500,5520")
    @TableField(value = "TO_FACTORY")
    private String toFactory;
    /**
     * TO批次号
     */
    @ApiModelProperty(value = "TO批次号")
    @TableField(value = "TO_LOTNO")
    private String toLotno;
    /**
     * 供应商IKEY
     */
    @ApiModelProperty(value = "供应商IKEY")
    @TableField(value = "TO_VENDOR_ID")
    private Integer toVendorId;
    /**
     * 只影响仓库库存，不影响库位库存的事务，库位允许为空，比如发货通知单预分配库位库存
     */
    @ApiModelProperty(value = "只影响仓库库存，不影响库位库存的事务，库位允许为空，比如发货通知单预分配库位库存")
    @TableField(value = "TO_LOC_ID")
    private Integer toLocId;
    /**
     * 库存地点
     */
    @ApiModelProperty(value = "库存地点")
    @TableField(value = "TO_WHS_ID")
    private Integer toWhsId;
    /**
     * TO单位
     */
    @ApiModelProperty(value = "TO单位")
    @TableField(value = "TO_UNIT")
    private String toUnit;
    /**
     * TO数量
     */
    @ApiModelProperty(value = "TO数量")
    @TableField(value = "TO_QTY")
    private BigDecimal toQty;
    /**
     * TO预收数量
     */
    @ApiModelProperty(value = "TO预收数量")
    @TableField(value = "TO_PRE_IN_QTY")
    private BigDecimal toPreInQty;
    /**
     * TO预支数量
     */
    @ApiModelProperty(value = "TO预支数量")
    @TableField(value = "TO_PRE_OUT_QTY")
    private BigDecimal toPreOutQty;
    /**
     * TO冻结数量
     */
    @ApiModelProperty(value = "TO冻结数量")
    @TableField(value = "TO_HOLD_QTY")
    private BigDecimal toHoldQty;
    /**
     * 分配数量
     */
    @ApiModelProperty(value = "分配数量")
    @TableField(value = "TO_PRE_ALOC_QTY")
    private BigDecimal toPreAlocQty;
    /**
     * 分配数量
     */
    @ApiModelProperty(value = "分配数量")
    @TableField(value = "TO_ALOC_QTY")
    private BigDecimal toAlocQty;
    /**
     * 库存性质(特殊采购性质)，K为寄售 ,E为销售订单,空白为标准转换为S
     */
    @ApiModelProperty(value = "库存性质(特殊采购性质)，K为寄售 ,E为销售订单,空白为标准转换为S")
    @TableField(value = "TO_INV_ATTR")
    private String toInvAttr;
    /**
     * TO品质状态
     */
    @ApiModelProperty(value = "TO品质状态")
    @TableField(value = "TO_QA_STATUS")
    private Integer toQaStatus;
    /**
     * 用户自定义字段1
     */
    @ApiModelProperty(value = "用户自定义字段1")
    @TableField(value = "UDF1")
    private String udf1;
    /**
     * 用户自定义字段2
     */
    @ApiModelProperty(value = "用户自定义字段2")
    @TableField(value = "UDF2")
    private String udf2;
    /**
     * 用户自定义字段3
     */
    @ApiModelProperty(value = "用户自定义字段3")
    @TableField(value = "UDF3")
    private String udf3;
    /**
     * 用户自定义字段4
     */
    @ApiModelProperty(value = "用户自定义字段4")
    @TableField(value = "UDF4")
    private String udf4;
    /**
     * 用户自定义字段5
     */
    @ApiModelProperty(value = "用户自定义字段5")
    @TableField(value = "UDF5")
    private String udf5;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField(value = "COMMENTS")
    private String comments;
}
